package com.ruoyi.lock.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;

import java.util.Date;

/**
 * 设备管理对象 a_device
 * 
 * @author arvin
 * @date 2025-03-02
 */
@Data
public class ADevice extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;
    @Excel(name = "门锁通讯密钥")
    private String secKey;
    private Long isReset;

    /** 管理员密码 */
    @Excel(name = "管理员密码")
    private String pwd;

    /** 管理员密码ID */
    @Excel(name = "管理员密码ID")
    private Long pwdId;
    /** 型号 */
    @Excel(name = "型号")
    private String type;

    /** 名称 */
    @Excel(name = "名称")
    private String name;

    /** 设备id */
    @Excel(name = "设备id")
    private String mac;

    /** IMEI */
    @Excel(name = "IMEI")
    private String imei;

    /** 小区ID */
    @Excel(name = "小区ID")
    private Long cellId;

    /** 单元/楼栋id */
    @Excel(name = "单元/楼栋id")
    private Long unitId;

    /** 楼层id */
    @Excel(name = "楼层id")
    private Long floorId;

    /** 房间ID */
    @Excel(name = "房间ID")
    private Long homeId;

    /** 所属组织 */
    @Excel(name = "所属组织")
    private Long deptId;

    /** 固件版本 */
    @Excel(name = "固件版本")
    private String firmwareVersion;

    /** 设备状态 ，如1异常、3离线、4在线 */
    @Excel(name = "设备状态")
    private Long status;

    /** 电池电量 */
    @Excel(name = "电池电量")
    private Long batteryLevel;

    /** 最后通讯时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "最后通讯时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date lastCommunication;

    /** 电池电压 */
    @Excel(name = "电池电压")
    private String volt;

    /** 联网信号强度 */
    @Excel(name = "联网信号强度")
    private String rssi;

    /** 心跳间隔 */
    @Excel(name = "心跳间隔")
    private String hbinterval;

    /** 办理状态 */
    @Excel(name = "办理状态")
    private Long isFlag;

    /** 小区名称 */
    @Excel(name = "小区名称")
    private String cellName;
    
    /** 单元名称 */
    @Excel(name = "单元名称")
    private String unitName;
    
    /** 楼层名称 */
    @Excel(name = "楼层名称")
    private String floorName;
    
    /** 房间名称 */
    @Excel(name = "房间名称")
    private String roomName;

    /** 是否超过3天未通信 */
    private Boolean isNoComm;
    private Boolean searchMac;

    /** 是否时间异常（大于2037年） */
    private Boolean isDateError;

}
